package spar.cancer;

import spar.cancer.config.CancerConfig;
import spar.cancer.struct.CheckInfo;
import spar.cancer.struct.Type;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface CancerAPI {
    /////////////////////////////////////流程相关////////////////////////////////////////////////
    public static void Init(CancerConfig config) throws IOException {}

    public static void Exit() {}

    public static boolean hasNextData() {return false;}

    public static void grouping() {}

    public static void invGen() {}

    ////////////////////////////////////check/////////////////////////////////////////////
    //私有方法，将本次check信息保存到checkTables对应行号的表中
    private void check(int lineNumber, int iterId) {}

    public void check();

    public static void check(Cancer<?>... args) {}

    public static void check(List<Cancer<?>> args) {}

    public static void check(Type type) {}

    public static void check(String... names) {}

    //////////////////////////////////////dump/////////////////////////////////////////
    public List<CheckInfo> dumpChkInfos();

    public static List<CheckInfo> dumpChkInfos(Cancer<?>... args) {return null;}

    public static List<CheckInfo> dumpChkInfos(List<Cancer<?>> args) {return null;}

    public static List<CheckInfo> dumpChkInfos(Type type) {return null;}

    public static List<CheckInfo> dumpChkInfos(String... names) {return null;}

    public static List<CheckInfo> dumpChkInfos(int iterId) {return null;}

    public static List<CheckInfo> dumpChkInfos(int... iterIds) {return null;}

    public static List<CheckInfo> dumpAllChkInfos() {return null;}

    public static Map<Integer, List<String>> dumpLineCodes(int iterId) {return null;}

    public static Map<Integer, List<String>> dumpLineCodes(int ...iterIds) {return null;}

    public static Map<Integer, List<String>> dumpAllLineCodes() {return null;}
}
